레드팀

레드팀풀체인_08_권한 상승

작성자 : Heehyeon Yoo|2025-12-26
# RedTeam# PrivilegeEscalation# PrivEsc# Kerberoasting# ActiveDirectory

1. 권한 상승 개요

현재 장악한 시스템이나 계정의 권한을 확장하여 더 높은 수준의 접근 권한(System, Domain Admin 등)을 확보하는 과정이다.

  • 레드팀 관점: 권한 상승은 필수(Mandatory)가 아니다. 현재 권한으로도 목표 달성이 가능하다면 굳이 탐지 위험을 감수하며 권한 상승을 할 필요가 없다.(예: VPN Admin 권한만 있으면 되지, 굳이 VPN 서버의 Root가 될 필요는 없다).

2. 권한 상승의 종류

2.1. 로컬 권한 상승(Local PrivEsc)

단일 호스트 내에서 권한을 높이는 것이다.

  • 유저 권한 상승: 일반 사용자 -> 로컬 관리자(Administrator).
  • 프로세스 MIC 상승: Medium Integrity -> High/System Integrity.
    • UAC Bypass: 관리자 권한을 가진 사용자가 UAC(User Account Control) 팝업 없이 관리자 권한으로 프로세스를 실행하게 하는 기법.
    • 목적: Mimikatz로 자격 증명(Credential)을 덤프하거나, 다른 프로세스에 인젝션(Injection)을 하기 위해서는 최소 High Integrity 이상의 권한이 필요하다.

2.2. 도메인 권한 상승(Domain PrivEsc)

Active Directory 환경에서 도메인 전체에 영향을 미치는 권한을 획득하는 것이다.

  • 주요 기법: Kerberoasting, AS-REP Roasting, Unconstrained Delegation, ADCS 등.
  • 목표: 더 많은 호스트에 접근하거나, 도메인 관리자(Domain Admin) 권한을 탈취하여 도메인 전체를 장악하는 것.

3. 실습 시나리오: Kerberoasting 공격

Kerberos 인증 프로토콜의 취약점을 이용해 서비스 계정(Service Account)의 비밀번호 해시를 탈취하고 크랙하는 공격이다.

3.1. 취약한 서비스 계정 식별(Recon)

  • SPN(Service Principal Name)이 설정된 사용자 계정만 Kerberoasting이 가능하다.
  • BloodHound나 LDAP 쿼리를 통해 SPN이 설정된 계정을 찾는다.
    • 발견: SFMSSQLService(MS-SQL 서비스 계정). 비밀번호가 최근에 설정됨.

3.2. 서비스 티켓(TGS) 요청(Request)

  • C2 도구(BOF)인 Rubeus 등을 사용하여 TGS(Ticket Granting Service) 티켓을 요청한다.
  • 이때, 도메인 컨트롤러는 해당 서비스 계정의 비밀번호 해시로 암호화된 티켓을 반환한다.
# Sliver BOF를 이용한 커버로스팅(탐지 위험 낮음)
kerberoast --spn 'MSSQLSvc/sql01.us.rt.local:1433'

3.3. 해시 크래킹(Cracking)

  • 탈취한 티켓(Hash)을 공격자 PC(Kali)로 가져와 Hashcat으로 크랙한다.
  • 서비스 계정은 주로 사람이 기억하기 쉬운 비밀번호를 사용하거나, 비밀번호 변경 주기가 긴 경우가 많아 크래킹 성공률이 높다.
# Hashcat 모드 13100(Kerberos 5 TGS-REP etype 23)
hashcat -m 13100 hash.txt rockyou.txt
  • 결과: 비밀번호 accessnsql 획득.

3.4. 권한 확인 및 횡적 이동

  • 크랙된 비밀번호가 맞는지 NetExec 등으로 검증한다.
  • 해당 계정이 SQL01 서버의 로컬 관리자 권한을 가지고 있음을 확인한다.
  • 획득한 계정을 이용해 SQL01 서버로 횡적 이동(Lateral Movement)을 준비한다.